package cashpointer.core.dao;

import cashpointer.core.model.Owner;
import java.util.List;
import java.util.Set;

/**
 * Interfejs obslugi operacji bazodanowych na tabeli Owner.
 * @author wojciech topolski
 * @version 2009-03-17
 */
public interface OwnerDao {
    /**
     * Funkcja dodaje nowego badz aktualizuje juz istniejacego wlasciciela.
     * @param owner Owner
     * @return boolean
     */
	public void save(Owner owner);

    /**
     * Funkcja usuwa wlasciciela bankomatu.
     * @param owner Owner
     */
	public void delete(Owner owner);

    /**
     * Funkcja pobiera wlasciciela bankomatu za pomoca jego id.
     * @param id Long
     */
    public Owner getById(Long id);

    /**
     * Funkcja pobiera wlasciciela bankomatu identyfikujac go za pomoca nazwy.
     * @param id Long
     * @return Owner
     */
    public Owner getByName(String name);

    /**
     * Funkcja pobiera liste wszystkich wlascicieli bankomatow.
     * @return List<Owner>
     */
    public Set<Owner> getAll();

    /**
     * Funkcja zapisuje liste wlascicieli do bazy danych.
     * @param owners List<Owner>
     */
    public void saveAll(List<Owner> owners);
}
